package org.mzx.shortLink.adminn.service;

import org.mzx.shortLink.adminn.domain.entity.TGroup;
import com.baomidou.mybatisplus.extension.service.IService;
import org.mzx.shortLink.adminn.dto.Request.ShortLinkGroupSaveReqDTO;
import org.mzx.shortLink.adminn.dto.Request.groupSortDtoReq;
import org.mzx.shortLink.adminn.dto.Request.groupUpdateDtoResp;
import org.mzx.shortLink.adminn.dto.Response.groupTypeDtoResp;

import java.util.List;

/**
* @author mazhenxi
* @description 针对表【t_group】的数据库操作Service
* @createDate 2024-11-26 17:45:27
*/
public interface TGroupService extends IService<TGroup> {

    /**
     * 创建新的分组
     * name：用户传入的分组名
     * */
    Void createGroup(ShortLinkGroupSaveReqDTO requestParam);

    /**
     * 一个重载为新注册的用户创建默认分组
     * name:分组名
     * username：注册的用户名
     */
    Void createGroup(String name,String userName);

    /**
     * 查询当前登录用户的短链接分组名称
     * */
    List<groupTypeDtoResp> selectGroup();

    /**
     * 更新分组名
     * */
    Void Update(groupUpdateDtoResp requestParam);


    /**
     * 删除分组
     * */
    Void delete(String gid);

    /**
     * 根据前端传来的顺序改变数据库中的ordernum
     * */
    Void sort(List<groupSortDtoReq> gids);

    /**
     * 根据用户名查询其所有的分组，只有分组
     * @param username
     * @return
     */
    List<String> selectGidsByUserName(String username);
}
